登录 白背景

807. 保持城市天际线

https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline/

  • 提交时间:2021-12-13 15:33:46
  • 执行用时:4 ms, 在所有 Go 提交中击败了94.12%的用户
  • 内存消耗:3.4 MB, 在所有 Go 提交中击败了58.82%的用户
  • 通过测试用例:133 / 133
func maxIncreaseKeepingSkyline(grid [][]int) (ans int) {
    maxHeight := make([][]int, 2)
    maxHeight[0], maxHeight[1] = make([]int, len(grid[0])), make([]int, len(grid))

    for y, rows := range grid {
        maxTmp := 0
        for x, height := range rows {
            maxTmp = max(maxTmp, height)
            maxHeight[0][x] = max(maxHeight[0][x], height)
        }
        maxHeight[1][y] = maxTmp
    }

    for y, rows := range grid {
        for x, height := range rows {
            minHeight := min(maxHeight[0][x], maxHeight[1][y])
            ans += minHeight - height
        }
    }
    return
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}

func min(x, y int) int {
    if x < y {
        return x
    }
    return y
}